package com.jblv.frame.user.api.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author happyonion.yangtao
 * @version 1.0
 * @title SysMenuDTO
 * @projectName jblv-frame
 * @packageName com.jblv.web.dto
 * @description 菜单列表DTO
 * @date Create at 2020/5/26 22:03
 * @since jdk1.8
 */
@ApiModel(value="菜单DTO类",description="菜单数据传类" )
public class SysMenuDTO implements Serializable {
    private static final long serialVersionUID = -2568783836533671362L;

    /**
     * 菜单ID
     */
    @ApiModelProperty(value = "menuId",example="45a4f4f898944d7d952535509095f248")
    private String menuId;
    /**
     * 上级菜单ID，一级菜单为0
     */
    @ApiModelProperty(example="52ww",required = false)
    private String parentId;

    /**
     * 上级菜单名称，一级菜单为顶级
     */
    @ApiModelProperty(example="顶级",required = false)
    private String parentName;

    /**
     * 菜单名称
     */
    @ApiModelProperty(example="政治部")
    private String name;
    /**
     * 排序
     */
    @ApiModelProperty(example="3")
    private Integer orderNum;
    /**
     * 层级
     */
    @ApiModelProperty(example="1")
    private Integer level;
    /**
     * 创建时间
     */
    @ApiModelProperty(example="1588254943687")
    private Long createTime;
    /**
     * 创建人员
     */
    @ApiModelProperty()
    private String creator;
    /**
     * 更新时间
     */
    @ApiModelProperty(example="1588254943687")
    private Long updateTime;
    /**
     * 更新人员
     */
    @ApiModelProperty()
    private String updater;
    /**
     * 备注
     */
    @ApiModelProperty()
    private String remark;
    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @ApiModelProperty(example="0")
    private Integer deleteFlag;

    @ApiModelProperty()
    private List<SysMenuDTO> children = new ArrayList<>();

    public SysMenuDTO() {

    }
    public SysMenuDTO(String menuId, String parentId, String name, int orderNum) {
        this.menuId = menuId;
        this.parentId = parentId;
        this.name = name;
        this.orderNum = orderNum;
    }

    public String getMenuId() {
        return menuId;
    }

    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getParentName() {
        return parentName;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public Integer getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public Long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Integer deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public List<SysMenuDTO> getChildren() {
        return children;
    }

    public void setChildren(List<SysMenuDTO> children) {
        this.children = children;
    }

    @Override
    public String toString() {
        return "SysMenuDTO{" +
                "menuId='" + menuId + '\'' +
                ", parentId='" + parentId + '\'' +
                ", parentName='" + parentName + '\'' +
                ", name='" + name + '\'' +
                ", orderNum=" + orderNum +
                ", level=" + level +
                ", createTime=" + createTime +
                ", creator='" + creator + '\'' +
                ", updateTime=" + updateTime +
                ", updater='" + updater + '\'' +
                ", remark='" + remark + '\'' +
                ", deleteFlag=" + deleteFlag +
                ", children=" + children +
                '}';
    }
}
